Product details
- Publisher : Addison-Wesley Professional; 1st edition (December 10, 2021)
- Language : English
- Paperback : 464 pages
- ISBN-10 : 0137589735
- ISBN-13 : 978-0137589739
کتاب Understanding Software Dynamics (Addison-Wesley Professional Computing Series)
An Expert Guide to Software Performance Optimization
From mobile and cloud apps to video games to driverless vehicle control, more and more software is time-constrained: It must deliver reliable results seamlessly, consistently, and virtually instantaneously. If it doesn't, customers are unhappy--and sometimes lives are put at risk. When complex software underperforms or fails, software engineers need to identify and address the root causes. This is difficult and, historically, few tools have been available to help.
In Understanding Software Dynamics, performance expert Richard L. Sites tackles the problem head on, offering expert methods and advanced tools for understanding complex, time-constrained software dynamics, improving reliability and troubleshooting challenging performance problems.
Sites draws on several decades of experience pioneering software performance optimization, as well as extensive experience teaching graduate-level developers. He introduces principles and techniques for use in any environment, from embedded devices to datacenters, illuminating them with examples based on x86 or ARM processors running Linux and linked by Ethernet. He also guides readers through building and applying a powerful, new, extremely low-overhead open-source software tool, KUtrace, to precisely trace executions on every CPU core. Using insights gleaned from this tool, readers can apply nuanced solutions--not merely brute-force techniques such as turning off caches or cores.
- Measure and address issues associated with CPUs, memory, disk/SSD, networks, and their interactions
- Fix programs that are always too slow, and those that sometimes lag for no apparent reason
- Design useful observability, logging, and time-stamping capabilities into your code
- Reason more effectively about performance data to see why reality differs from expectations
- Identify problems such as excess execution, slow instruction execution, waiting for resources, and software locks
Understanding Software Dynamics will be valuable to experienced software professionals, including application and OS developers, hardware and system architects, real-time system designers, and game developers, as well as advanced students
منابع کتاب کتاب Understanding Software Dynamics (Addison-Wesley Professional Computing Series)
یک راهنمای تخصصی برای بهینهسازی عملکرد نرمافزار
از برنامههای موبایل و ابری گرفته تا بازیهای ویدیویی گرفته تا کنترل وسیله نقلیه بدون راننده، نرمافزارهای بیشتری با زمان محدود میشوند: باید نتایج قابل اعتماد را بهطور یکپارچه، پیوسته و تقریباً آنی ارائه دهند. اگر اینطور نباشد، مشتریان ناراضی هستند - و گاهی اوقات زندگی آنها به خطر می افتد. زمانی که نرمافزار پیچیده ضعیف عمل میکند یا از کار میافتد، مهندسان نرمافزار باید دلایل اصلی را شناسایی و برطرف کنند. این مشکل است و از نظر تاریخی، ابزارهای کمی برای کمک در دسترس بوده است.
در درک دینامیک نرم افزارریچارد ال. سایت، کارشناس عملکرد، با ارائه روشهای خبره و ابزارهای پیشرفته برای درک پویایی نرمافزار پیچیده و با زمان محدود، بهبود قابلیت اطمینان و عیبیابی مشکلات عملکرد چالشبرانگیز، با این مشکل مقابله میکند.
سایتها از چندین دهه تجربه پیشگام در بهینهسازی عملکرد نرمافزار و همچنین تجربه گسترده آموزش به توسعهدهندگان در سطح فارغالتحصیل استفاده میکنند. او اصول و تکنیکهایی را برای استفاده در هر محیطی، از دستگاههای تعبیهشده گرفته تا مراکز داده، معرفی میکند، و آنها را با مثالهایی بر اساس پردازندههای x86 یا ARM که لینوکس اجرا میکنند و توسط اترنت پیوند داده شدهاند، روشن میکند. او همچنین خوانندگان را از طریق ساخت و استفاده از یک ابزار نرمافزار متنباز قدرتمند، جدید و بسیار کم سربار، KUtrace، برای ردیابی دقیق اجراها در هر هسته CPU راهنمایی میکند. با استفاده از بینشهای بهدستآمده از این ابزار، خوانندگان میتوانند راهحلهای ظریف را به کار ببرند - نه صرفاً تکنیکهای brute-force مانند خاموش کردن حافظه پنهان یا هستهها.
- اندازه گیری و رفع مشکلات مربوط به CPU ها، حافظه، دیسک/SSD، شبکه ها و تعاملات آنها
- برنامه هایی که همیشه خیلی کند هستند و برنامه هایی که گاهی اوقات بدون هیچ دلیل مشخصی تاخیر دارند را برطرف کنید
- قابلیت مشاهده، ثبت و زمان بندی مفید را در کد خود طراحی کنید
- به طور مؤثرتری در مورد داده های عملکرد استدلال کنید تا ببینید چرا واقعیت با انتظارات متفاوت است
- مشکلاتی مانند اجرای بیش از حد، اجرای آهسته دستورالعمل، انتظار برای منابع و قفل نرم افزار را شناسایی کنید.
درک پویایی نرم افزار برای متخصصان نرم افزار با تجربه، از جمله توسعه دهندگان برنامه ها و سیستم عامل ها، معماران سخت افزار و سیستم، طراحان سیستم بلادرنگ، و توسعه دهندگان بازی، و همچنین دانشجویان پیشرفته، ارزشمند خواهد بود.
ارسال نظر درباره کتاب Understanding Software Dynamics (Addison-Wesley Professional Computing Series)